package com.learn.finished;

import java.util.HashMap;
import java.util.Map;

/**
 * 在整数数组中，如果一个整数的出现频次和它的数值大小相等，我们就称这个整数为「幸运数」。
 *
 * 给你一个整数数组 arr，请你从中找出并返回一个幸运数。
 *
 * 如果数组中存在多个幸运数，只需返回 最大 的那个。
 * 如果数组中不含幸运数，则返回 -1 。
 */
public class num_1394 {
    public static int findLucky(int[] arr) {
        //用map，当key等于value，返回最大的
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int num : arr) {
            map.put(num, map.getOrDefault(num,0)+1);
        }
        int max=0;
        for (Integer integer : map.keySet()) {
            if (integer == map.get(integer)) {
                max=Math.max(max,integer);
            }
        }
        return max==0?-1:max;
    }

    public static void main(String[] args) {
        int[] arr={2,2,3,4,5};
        System.out.println(findLucky(arr));
    }
}
